Technique for enabling multiple actions to be performed on an active data item

ABSTRACT

A record is processed, and a determination is made as to whether a data item in the record is usable by any one of a plurality of applications that are operable on the device. The detected data item is made actionable by assigning multiple actions to the data item, so that each action is programmatically initiated responsive to a designated input.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of co-pending and commonly owned U.S.patent application Ser. No. 11/768,694, filed Jun. 26, 2007, entitled“Technique for Enabling Multiple Actions to be Performed on an ActiveData Item”, the entirety of which is hereby incorporated by referenceherein.

TECHNICAL FIELD

The disclosed embodiments relate generally to the field ofcomputer-implemented functionality and user-interface features.

BACKGROUND

Computing devices, particularly handheld and portable devices, haveevolved to include numerous types of communication capabilities andfunctionality. For example, handheld devices exist that operate ascellular phones, messaging terminals, Internet devices, while includingpersonal information management (PIM) software and photo-managementapplications. Additionally, Internet Protocol services exist that cantransform Internet-enabled machines into telephony devices. Evenstand-alone telephones that connect to traditional Public SwitchedTelephone Networks (PSTN) are including more software to enhance thetelephone's functionality.

In enhancing communication capabilities and functionality, effort hasbeen made to enhance and assist the user in using such devices. Forexample, software features exist to facilitate the ease in which theuser can act on a phone number in an email message. A sequence of phonenumbers can be presented to a user for selection, and upon suchselection being made, a telephony application uses the phone number inmaking a phone call. Small form-factor computing devices, such asdevices that provide cellular phone functionality, have particular usefor such short-cut functionality, in order to reduce the manualinvolvement of the user. These devices have smaller keyboards that maybe harder to operate, and/or use in mobile or dynamic environments,where the user cannot readily retrieve a desired number.

Telephony devices are just one type of communication device. There arenow many types of communication types, and multi-functional devicesexist to accommodate the different communication types. Examples ofcommunication types other than telephony include email, instant message(including SMS protocol messages and Multimedia Message Service (MMS)protocol messages), and video conferencing. Many computing devices,particularly smart phones, are enabled to support communications usingmultiple communication mediums.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a computer implemented method for identifying andusing actionable data items, according to one or more embodiments of theinvention.

FIG. 2 illustrates a process flow in which actions that are enabled inconnection with a data item in active state are pertinent to the type ofthe data item.

FIG. 3 illustrates a system for identifying and using actionable dataitems, according to one or more embodiments of the invention.

FIG. 4A-4C illustrates alternative programmatic actions that may be madeactionable on a detected data item that is in the form of a phonenumber, according to one or more embodiments of the invention.

FIG. 5A-5C illustrates alternative programmatic actions that may be madeactionable on a detected data item that is in the form of a messagingidentifier such as an email address, according to one or moreembodiments of the invention.

FIG. 6A-6C illustrates alternative programmatic actions that may be madeactionable on a detected data item that is in the form of a URL or weblink, according to one or more embodiments of the invention.

FIG. 7 is a simplified hardware diagram for implementing any embodimentor combination of embodiments such as shown and described above.

DETAILED DESCRIPTION

Embodiments described herein enable multiple programmatic actions to beperformed on data items that are detected from records and documents.Such data items may correspond to e-mails and other messagingidentifiers, phone numbers, and web links such as URLs.

According to one or more embodiments, a computer is configured to becapable of detecting multiple types of data items. Furthermore, theprogrammatic actions that are enabled with each data item may bepertinent to the type of data item. For example, different programmaticactions may be performed and/or enabled for selection to the user whenthe data item is phone number, as opposed to an email address.

One or more embodiments described herein enable the performance ofuser-actions on data items that are contained in records or documentsthat are rendered or used on a computing device. In one embodiment, arecord is processed, and a determination is made as to whether a dataitem in the record is usable by any one of a plurality of applicationsthat are operable on the device. The detected data item is madeactionable by assigning multiple actions to the data item, so that eachaction is programmatically initiated responsive to a designated input.

In another embodiment, a determination is made as to whether a data itemcontained in a record is of a particular data item type. The data itemmade be provided in an active state. Each of two or more designatedinputs may be made by a user in association with the data item in theactive state, so that either of two or more programmatic actions may beinitiated or subsequently for the data item in the active state.

In another embodiment, a computing device includes one or moreprocessors that are configured to recognize a data item in a record ordocument as being one of two or more types of data items, and providethe data item in the record or document in an active state. Multipleprogrammatic actions may be associated with the data item of each dataitem type. The programmatic actions that are enabled for the data itemof each data item type are selected so as to be pertinent to that dataitem type. Each of the programmatic actions may be performed orinitiated with a corresponding designated input.

In another embodiment, a computing device includes one or moreprocessors that are configured to make a determination that a data itemcontained in a record is of a particular data item type. The one or moreprocessors provide the data item in an active state, so that the dataitem may be programmatically acted on by the user with entry of adesignated input. Each of two or more programmatic actions may beperformed using the data item in the active state, responsive to adesignated input entered by the user.

One or more embodiments described herein provide that methods,techniques and actions performed by a computing device are performedprogrammatically, or as a computer-implemented method. Programmaticallymeans through the use of code, or computer-executable instructions. Aprogrammatically performed step may or may not be automatic.

One or more embodiments described herein may be implemented usingmodules. A module may include a program, a subroutine, a portion of aprogram, or a software component or a hardware component capable ofperforming one or more stated tasks or functions. As used herein, amodule can exist on a hardware component independently of other modules,or a module can be a shared element or process of other modules,programs or machines.

Furthermore, one or more embodiments described herein may be implementedthrough the use of instructions that are executable by one or moreprocessors. These instructions may be carried on a non-transitorycomputer-readable medium. Machines shown in figures below provideexamples of processing resources and computer-readable mediums on whichinstructions for implementing embodiments of the invention can becarried and/or executed. In particular, the numerous machines shown withembodiments of the invention include processor(s) and various forms ofmemory for holding data and instructions. Examples of computer-readablemediums include permanent memory storage devices, such as hard drives onpersonal computers or servers. Other examples of computer storagemediums include portable storage units, such as CD or DVD units, flashmemory (such as carried on many cell phones and personal digitalassistants (PDAs)), and magnetic memory. Computers, terminals, networkenabled devices (e.g. mobile devices such as cell phones) are allexamples of machines and devices that utilize processors, memory, andinstructions stored on computer-readable mediums.

FIG. 1 illustrates a computer implemented method for identifying andusing actionable data items, according to one or more embodiments of theinvention. And method such as described may be performed in anycomputing environment, including on a desktop computer or small formfactor device. In particular, one or more embodiments contemplateimplementation of a method such as described on a mobile computingdevice, including cellular voice/data devices for enabling telephony andmessaging.

In a step 110, a document or record is analyzed for presence of one ormore types of data items. In an embodiment, the record may correspond toa message, such as an email message, SMS message, MMS message, orinstant message. Alternatively, the record may correspond to a recordfrom a personal information management database or store, such as acontact record or a task. An analysis such as described may also beperformed on a document (e.g. word processing document or spreadsheet)or any other medium on which a data item may be recognized.

In one embodiment, the analysis includes scanning text for the presenceof markers that indicate a particular kind of data item. Multiple kindsof data items may be sought. In one implementation, the data itemscorrespond to a sequence of characters that signify a phone number, amessaging identifier or address (e.g. email address), or a URL or linkto a network site or location. Other implementations may detect dataitems that correspond to, for example, pin codes or conference call-innumbers and session identifiers. Numerous other kinds of data items mayalso be sought, such as, for example, images (e.g. a picture containedin an MMS message) or embedded objects of the document or record.

In one embodiment, text from the document or record is scanned formarkers that are indicative of a particular kind of data item. For phonenumbers, for example, markers may include (i) a string of numbers thatis greater than or equal to seven in size; and/or (ii) a string ofnumbers that follow a set of three numbers in parenthesis (e.g.“(408)”). A marker for an email address may be identified by thepresence of a character such as “@”, while a messaging identifier for atelephony application such as SMS may be signified by any phone numberor sequence of numbers that is greater than a minimum number in length(e.g. four). A URL to a website may be identified by the presence of“.com” or other domain identifier. Numerous other techniques foridentifying specific kinds of data items may also be employed.

In step 120, the recognized data item from step 110 is provided in anactive state. In the active state, the data item may be displayed in amanner that indicates the data item is actionable. When actionable, theuser may enter a short input (e.g. selection input, double-click etc.)to cause some programmatic action to be performed with use of the activedata item. The data item in the active state may be displayed, forexample, as a link.

Step 130 provides the multiple programmatic actions to be associatedwith the data item in the active state. Step 130 may be performedconcurrently or even before step 120. Each of the programmatic actionsthat are associated or assigned to the data item in the active state maybe triggered by an input that is separate and/or distinguishable to thataction. In this way, recognized data items from step 110 may beactionable in multiple ways, through different inputs.

One more ore embodiments provide that two or more programmatic actionsmay be performed on a data item that is in an active state, where eachprogrammatic action is triggerable or responsive to a particulardesignated input. The designated inputs may correspond to differentkinds of quick or short-cut actions, such as provided by a mechanismbeing actuated (e.g. button press, screen tap, mouse-click, scrolling).In one embodiment, at least one of the designated inputs for one of theprogrammatic actions of the data item is a selection input, made throughactuation of a mechanism that indicates a selection action by the user.Other kinds of selection input or interaction may be assigned for theother designated input. For example, in one embodiment, a partialselection input or interaction may be assigned to the other designatedinput.

The designated inputs may alternatively be distinguishable by scrollingactivity. For example, all of the multiple actions that are enabled foran active data item may be displayed at one time. The user may select aparticular action by scrolling a menu that displays the availableactions, and selecting one of the desired actions.

An embodiment provides that, for a given data item, one of two or moredesignated inputs may be received in association with the data itembeing in the activated state. Step 134 assumes a first designated inputis entered by the user in association with a particular data item beingin the active state. In one implementation, the link of the data item isselected with a selection input from the user. For example, the user mayoperate to place the link of the data item in a selected state, throughuse of an input mechanism that signifies selection. The first designatedinput of step 134, when performed in association the data item being inthe active state, triggers the assigned programmatic action for thatinput in step 144. For example, when the data item is the phone number,the assigned programmatic action may correspond to one of (i) enablingor prompting the user in selecting the phone application to make a callusing the phone number, or (ii) automatically causing the phoneapplication to make the call using the phone number.

As an alternative to step 134, step 138 assumes a second designatedinput is entered by the user in association with the particular dataitem being in the active state. Thus, under one embodiment, the userenters either the first designated input or the second designated input.In one implementation, the link of the data item is selected with analternative selection input being used as the second designated input.The second designated input may distinguishable from the firstdesignated input by use of a separate input mechanism (i.e. a differentbutton), different input action (e.g. left-click versus right-click),and/or through use of scrolling activity. Still further, the seconddesignated input may correspond to a user-interaction in which the dataitem is placed in a partial active state. Such a partial active statemay correspond to the data item being highlighted, or placed “in focus”.

The second designated input of step 138, when performed in associationthe data item being in the active state, triggers the assignedprogrammatic action for that input in step 148. For example, when thedata item is the phone number, the assigned programmatic action maycorrespond to one of (i) enabling or prompting the user in selectinganyone of a plurality of actions, such as saving the phone number to acontact record; or (ii) automatically initiating the alternative action(e.g. copying the phone number and presenting a lookup field for thecontact records or other PIM database).

According to an embodiment, a method such as described by FIG. 1 may beused to detect multiple types of data items from a given record ordocument. Moreover, one or more embodiments provide that each data item,when in the active state, is associated with programmatic actions thatare pertinent, or alternatively most pertinent, for the type of dataitem. FIG. 2 illustrates a process flow in which actions that areenabled in connection with a data item being placed in an active stateare pertinent to the type of the data item. Steps such as described withFIG. 2 may be performed as part of steps 110 thru 130 of an embodimentof FIG. 1.

In step 210, a data item is recognized. The data item may be of a giventype, and the recognition mechanism may be capable of recognizing morethan one type of data item. For example, step 110 may be performed by adevice that is configured to be capable of recognizing phone numbers,alphanumeric text message identifiers, email addresses, and/or web links(e.g. URLs).

Step 220 provides that different programmatic actions are enabled fordata items of different types. The programmatic actions that are enabledfor each data item type may be different in that each type of data itemis enabled for actions that are pertinent to the applications andprograms that can use the particular data item type. Thus, under anembodiment, only actions that are pertinent to the type of data item maybe performed or enabled.

Step 220 illustrates possible recognition of three different types ofdata items 222. Each data item of a particular type 222 may have (whenin the active state) a particular set or class of programmatic actionsassigned to it. Step 220 illustrates an implementation where there aretwo types of programmatic actions 225 for the data item of each type.While an embodiment of FIG. 2 illustrates that the data item of eachtype has multiple actions, an embodiment may provide that some dataitems have only a single action.

Under one implementation, the programmatic actions 225 may be identifiedas primary actions 224 or alternative actions 226. The primary actionmay correspond to enabling or automatically executing an applicationthat has a primary use for the particular kind of data item. Forexample, a phone application on a mobile computing device has a primaryuse for a phone number, even though other applications can make use of aphone number. Continuing the example of the phone number, thealternative actions may correspond to, for example, sending textmessages to a phone number, or saving the phone number in a contactrecord or memo record. As with the primary action, the alternativeactions may be enabled and performed with subsequent input (i.e.selection input) rather than automatically performed with entry of onedesignated input. One or more embodiments provide for multiplealternative actions to be enabled and/or automatically performed forsome or all types of data items.

Furthermore, as mentioned, some or all of the programmatic actions maybe prompts to enable the user to readily select the primary action 224or one of the alternative actions 226. For example, as describedelsewhere, the user may enter a designated input for the alternativeactions 226, and then be presented a menu of selectable options.Likewise, the user may enter the designated input for the primaryaction, and be presented with a prompt that asks whether he or shewishes to complete the action.

As mentioned, each of the primary or alternative/additional actions maybe pertinent to the type of the data item. The primary action for aphone number, for example, may be to place a call, while the primaryaction for an email may be to compose a message to the email addressthat is the data item. Actions that are not pertinent to the type of thedata item may be excluded as an option that is or can be performed inconnection with the active data item.

Moreover, any of the actions described may be enabled in that they areperformed automatically upon a first in time designated input beingdetected, or in the context that a designated input presents the userwith an opportunity to select and/or provide additional input to haveone or more other actions performed. Thus, actions described as beingenabled with an embodiment of FIG. 2 may be short-cut actions, albeitnot necessarily performed automatically or responsively to a designatedinput.

FIG. 3 illustrates a system for identifying and using actionable dataitems, according to one or more embodiments of the invention. A systemsuch as described with an embodiment of FIG. 3 may be used to implementany of the methods and embodiments described with, for example, FIG. 1or FIG. 2. Furthermore, a system of FIG. 3 may be implemented on any oneof various computing environments, including a mobile computing deviceor fully-functional personal computer.

In an embodiment, a system 300 include modules in the form of a dataitem detect 310, a user-interface 320, and an action enable 330. Thedata item detect 310 may analyze record data 304 from a source 302 ofrecords. The source 302 of records may correspond to a database or otherdata store, or alternatively any file or document that is received orhandled on the computing device. For example, the source 302 may includemessages maintained in association with a messaging program, such as anemail program. Newly received messages or other records, or temporarilystored and used messages or records may also be used. More generally,one or more embodiments provide that records and documents maintained ina file folder system of a computing device may act as the source 302 forrecords.

The data item detect 310 may scan record data 304 from individualrecords 301 in the record source 302. The trigger or conditions for whenthe data item detect 310 processes record data 304 for a given recordmay vary. For example, text from an email message may be scanned onreceipt by the computing device. As an alternative or addition, eachtime a record is opened, modified or created, the text (or newly addedtext) may be inspected in the data item detect 310. Still further, oneor more embodiments provide that the data item detect 310 is manuallyinitiated by a user. Once recognized, the data item 306 may be storedwith the record or document as an actionable data item.

The data item detect 310 may inspect or analyze the record data 304 inmaking a determination as to whether a data item 306 of a particulartype exists in a given record. As mentioned with one or more otherembodiments, the data item of each particular type may be identified bymarkers, such as those that are indicative of phone numbers, emailaddresses, other messaging identifiers, and URLs or other links tonetwork sites or locations. One or more embodiments provide thatmultiple types of data items may be detected (e.g. phone number, SMSidentifier, email address).

According to an embodiment, an output of the data item detect 310 is theidentification of data items 306. Each data item 306 may be provided inan active state, at least when the record or document containing thedata item is in use. A data item in an active state may have thefollowing characteristics: (i) when the record or document that containsthe data item is opened, the data item is shown in some form thatdelineates it from other text or data; and (ii) the user is capable ofinteracting or providing one or more different inputs that isrecognizable by the computing device for purpose of performing one ormore programmatic actions.

In making data item 306 active, the user-interface 320 may display therecognized data item with some form of prominence. For example, the dataitem 306 may be displayed as a selectable link. The user may act on thelink through one or more designated inputs. In this respect, theuser-interface 320 may correspond to programming or other logic thatcoordinates and affects use of multiple types of user-interfacefeatures. The user-interface 320 may affect the manner that the dataitem 306 is displayed on a display surface or medium of a computingdevice. Likewise, the user-interface 320 may coordinate use of inputfeatures, such as multi-function mechanical features, buttons or thedisplay (when contact-sensitive) to enable the user to specify one ofthe designated inputs 318 for the active data item, as well as enablingthe user to provide a specific one of the designated inputs 318 inassociation with the data item 306 in the active state.

The programmatic actions assigned to the data item 306 in the activestate may be provided and handled by the action enable 330. As describedwith an embodiment of FIG. 2, the programmatic action(s) that is/areenabled for the data item 306 may vary based on the data item type (e.g.email address, phone number or web link).

Additionally, the action enable 330 may recognize when one of thedesignated inputs 318 that are enabled by the user-interface 320 areprovided by the user in association with the data item in the activestate. According to one implementation, action enable 330 may detect andassociate one of the designated inputs 318 to the data item 306 in theactive state. The designated input 318 for a data item may vary (ornot), in whole or in part, depending on the type of data item.

The user-interface 320 may include programming or other logic used withany one of many devices or components, such as buttons, multi-wayinterfaces and/or displays. The user-interface 320 may be configured topresent recognized actionable data items as active links 317, and torecognize inputs that are meant to be associated on the data item. Amongother functionality, the module of the user-interface 320 may beconfigured to provide the display menu of the user-interface feature354.

As described with an embodiment of FIG. 1 or FIG. 2, the designatedinput 318 provided in association with the data item 306 in the activestate may result in one of two or more programmatic actions beingidentified. The user-interface 320 may signal one of two or more inputs311, 313 (e.g. selection versus in-focus) to the action enable 330,which then initiates or performs the subsequent programmatic actions. Inan embodiment, the data item 306 may be enabled with two or moreprogrammatic actions, where each programmatic action is associated witha particular input. The user-interface 320 detects the input provided,and the action enable 330 recognizes the designated input and performsthe associated programmatic function.

As described with an embodiment of FIG. 2, one or more embodimentsprovide that a first designated input (when provided in association withthe data item 306 being in the active state) triggers either (i)performance of a primary application action using the data item 306, or(ii) enables the user to enter selection input or otherwise confirm tohave the primary application action performed. In the latter case, theaction may be a short-cut, so that the amount of effort required fromthe user is far less than would otherwise be required (e.g. singlebutton press versus manually entering each number of a phone number). Asecond designated input (when provided in association with the data item306 being in the active state) triggers either (i) performance of anadditional action using the data item 306, or (ii) enables the user toenter selection input to have one of one or more additional actions tobe performed. In the latter case, for example, the user may be displayeda menu.

In an embodiment, the action enable 330 may perform the triggeredactions in response to either of the designated inputs. For when theprimary application action is signaled by the designated input, thetriggered actions may correspond to (i) automatically sending a command333 to the targeted application 350 or programming element to use theactive data item 306, or (ii) prompt the user to enter selection orother short-cut input to have the designated application 350 orprogramming element use the active data item 306. For when theadditional or alternative application action is signaled by the other ofthe designated inputs, the triggered actions may correspond to (i)automatically sending a command 335 to a designated alternativeapplication or programming element to use the active data item 306, (ii)prompt the user to enter selection or other short-cut action to have thedesignated alternative or additional application or programming elementuse the active data item 306. In the latter case, user-interface 320 mayprovide a menu of actions that can be performed using the data item maybe displayed to the user for selection.

As illustrated by an embodiment of FIG. 3, the alternative applicationor programming elements may correspond to one or more of: (i) a filemanagement program or routine 352 for maintaining documents, records ordata items for use by a user and/or an application; (ii) a lookup orediting interface 356 for enabling search of a database or data store ofrecords; (iii) a copy and paste feature 358; and/or (iv) auser-interface feature 354 for displaying or otherwise generating afeature for enabling user-interaction to select or configureprogrammatic actions on the data item 306 (e.g. for providing any or allof the programmatic actions described with (i)-(iii)). The alternativeapplication or programming elements shown and described are onlyexamples of implementations that can be provided with one or moreembodiments.

In more detail, the file management program 352 may be used to initiatea save routine that stores a copy of the record at a designated filelocation. In one implementation, the location of where the data item isto be saved is pre-selected. In particular, the target file folder forwhere the data item is to be saved may be pre-selected, based at leastin part on the type of the data item. Thus, the alternative designatedinput may cause the action enable 330 to perform at least some of thesteps in the sequence of saving the data item automatically. These stepsmay include pre-selection of the file folder where the data item to bestored. For example, the alternative designated input may facilitate theuser in performing a short-cut action to save a URL in a favorite folderof the browser application. The location of the favorite folder may bepre-selected for the user, but also subject to change based onuser-input.

Under one implementation, the lookup or editing interface 356 maycorrespond to an application or application plug-in that searches adatabase or data store of records. As an example, a contact recorddatabase may include a feature to enable a lookup of a person by firstname, last name, initial, or other contact record field. The lookup orediting interface 356 may enable the user to insert the data item into aselected field of the record after lookup, so as to enable the user toedit the identified record. Additionally, the lookup or editinginterface 356 may enable the user to create a new record with the dataitem 306 carried over into a designated or selected field of the record.Insertion of the data item 306 may involve copy and paste functionality358.

The copy and paste functionality 358 may be used in connection withother tasks or programming acts. In addition to an example such asrecited above, in which the data item is inserted into a designated orselected field, the copy and paste functionality 358 may be carried outwith any one of many other programming acts or tasks. For example, inthe case when the data item 306 corresponds to an email address, thecopy and paste functionality 358 may be used to copy and paste the emailaddress into the compose field of an email, a contact record, or aelectronic memo. In the case where the data item 306 corresponds to alink or a URL, the copy and paste function may copy and paste the URL toa browser bar, or into the body of an email for messaging to anotherperson.

In one embodiment, the user-interface feature 354 may be provided in theform of a window or display that enables the user to manually specify orconfigure an action, and/or to select an action from many possibleactions. For example, responsive to the alternative designated inputbeing provided in association with the active data item 306, a menu ofoptions may be presented that enable the user to select an actionrequiring use of the data item. As described with one or more otherembodiments, the actions provided may be only those that are pertinentto the particular type of data item.

Implementation Illustrations

FIG. 4A-4C illustrates alternative programmatic actions that may be madeactionable on a detected data item that is in the form of a phonenumber, according to one or more embodiments of the invention. Anembodiment such as shown and described with FIG. 4A-4C may beimplemented using a computing device or system such as shown with anembodiment of FIG. 3. In FIG. 4A, a system user-interface 410 is shownin abstraction, having as elements a display interface 420 and one ormore mechanical or interactive user-interface features. In an exampleshown by FIG. 4A-4C, the record is an email message. The record datathat is analyzed or scanned is text contained in the body of the email.Furthermore, in the implementation described, a data item 406 in theform of a phone number is recognized and made active. The data item 406in the active state may be displayed as a link, or otherwise madedistinguishable or placed in prominence so as to communicatefunctionality associated with it.

As described with one or more embodiments, the functionality providedwith the data item 406 may be made available to the user in response tothe user entering a designated input in association with the data item406. Multiple actions may be assigned to the data item 406, anddifferent inputs may be detected in order to enable or cause performanceof those actions. In one embodiment, the different designated inputs maybe made in association with the data item 406 through use of amechanical input feature (or multiple features), as described below.

In an embodiment, a multi-way or functional mechanical feature 415 maybe used in connection with the display interface 420 to enable the userto enter the designated inputs for the active data item 406. Themulti-way mechanical feature 415 may correspond to a device that enablesa user to scroll, navigate and select from one mechanical interface. Forexample, the multi-way mechanical feature 415 may correspond to a buttonset combination that enables a user to enter navigation input (e.g. in2, 4 or more directions) and selection input.

In an embodiment, the multi-way mechanical input feature 415 may operatein conjunction with logic of the computing device that enables the userto navigate in hops from one object or feature on the display interface420 to the next. A user may navigate to one data element to place thedata element “in-focus”. The state of being in-focus means thatsubsequent selection input would cause that particular data element (andnot any other data element) to be acted upon by the selection input. Thestate of being in-focus is sometimes referred to as a partially-selectedstate. With object-to-object navigation, a user is able to (i) navigatein one or more directions to cause active elements appearing on thedisplay interface 420 to be made in-focus, and (ii) navigation from onesuch element to another element may be made, without interruption fromany intermediate object or display graphic. In the example provided byFIG. 4A, a user may navigate from a starting point such as the “To:”field to, for example, the “From” field and next to the phone number406.

In one embodiment, one of the designated inputs may correspond to aselection input, which may be entered by, for example, the user pressinga center-select area 408 on the multi-way mechanical feature 415. Thepressing of the center-select area 408 may invoke one of theprogrammatic actions (e.g. the primary action). The designated input(s)for invoking the additional or alternative functionality may correspondto other inputs that can be made through the multi-way mechanicalfeature 415. These may include, for example, press and hold in thecenter-select area 408, a double-click of the center-select area 408,directional input made through, for example, one of the directionalareas 409, or navigating or placing the data item 406 in-focus for adesignated period of time (e.g. one second).

As described above and elsewhere, one or more embodiments provide thatthe active data item 406 may be acted upon by the user with differentdesignated inputs. Different programmatic actions may result fromdifferent designated inputs being entered by the user. FIG. 4Billustrates one result from the active data item 406 being acted uponwith one designated input, under an embodiment of the invention. As aphone number, the active data item 406 may be pre-associated withprogrammatic actions that are pertinent to telephony. These programmaticactions may be enabled in connection with inputs that are acted on thedata item 406. FIG. 4B illustrates the case where a primary programmaticaction is performed automatically in response to a designated input(e.g. press of center-select area 408). A telephony application mayexecute and use the active data item 406 to place a phone call.

While an embodiment described above provides for the telephonyapplication to automatically place the phone call using data item 406,one or more embodiments provide that the designated input results in theuser being prompted with the option to have the phone call placed. Forexample, the user may be asked to confirm that he or she wishes to placea phone call. If the user enters an appropriate selection input, thetelephony application may execute in the manner described.

FIG. 4C illustrates enablement or use of alternative programmaticactions that may result with the user entering corresponding designatedinputs is association with the data item 406 in the active state, underan embodiment of the invention. The user may enter an alternative oradditional input by which another programmatic action or set ofprogrammatic actions is performed or made enabled for selection, inaddition to the programmatic action shown in an embodiment of FIG. 4B.In FIG. 4C, an alternative or additional input results in theprogrammatic act of a menu being displayed, where the menu lists otherprogrammatic actions that may be performed with selection input. Thealternative or additional programmatic actions may correspond to any oneor more or combination of the following: (i) a copy and paste function472 for adding a phone number to a contact or other record; (ii) a firstmessage compose function 474 (e.g. SMS) using the phone number in theaddress field; (iii) a second message compose function 476 (e.g. MMS)using the phone number in the address field; (iv) an alternative copyand past function 478, such as for saving the phone number to a memo;and/or (v) a third copy and past function 480, for entering the phonenumber into the body of an email. Numerous other functions may bedisplayed or performed in response to an alternative or additional inputacted on the data item. In addition, any of the programmatic functionssuch as described with functions 472-480 may be performed automatically,without further user-input (other than responsive to the designatedinput entered by the user in association with the active data item), asan alternative to displaying the programmatic functions for selectionand performance by the user.

As an addition or alternative to the multi-way mechanical feature 415,buttons, contact surfaces, members, pointers, touch pads and othermechanical features may also be used. As still another addition oralternative, the display interface 420 may be contact-sensitive, and thedevice may use virtual input mechanisms that simulate any of themechanical features or inputs described herein.

As an alternative to an embodiment of FIG. 4A-FIG. 4C, in whichdifferent programmatic actions are performed in response to differentdesignated inputs, one or more embodiments may provide for a singledesignated input (e.g. pressing of the center-select area 408) thatenables the user to select from two or more different programmaticactions. For example, one designated input may invoke a menu containingmultiple programmatic options. The user may scroll or navigate to aselected action, then select again (e.g. through pressing of thecenter-select area 408). In such an embodiment, the programmatic actionshown by FIG. 4B may follow the programmatic action shown by FIG. 4A,and be responsive to the user selecting an action that corresponds toplacing a phone call.

FIG. 5A-5C illustrates alternative programmatic actions that may be madeactionable on a detected data item that is in the form of a messagingidentifier such as an email address, according to one or moreembodiments of the invention. An embodiment such as shown and describedwith FIG. 5A-5C may be implemented using a computing device or systemsuch as shown with an embodiment of FIG. 3.

In an example shown by FIG. 5A-5C, an identified data item 506 is in theform of an email address. Once detected, the data item 506 may be madeactive. For example, the data item 506 may be displayed as a link. Asdescribed with FIG. 4A-4C, functionality provided with the data item 506may be made available to the user in response to the user entering oneor more designated inputs in association with the data item 506.Multiple actions may be associated or assigned to data item 506 upondata item 506 being recognized as an email address. In this way, theactions may be made pertinent to an email address. For example, theactions may correspond to legitimate uses of an email address. In oneembodiment, different designated inputs may be used to act on the dataitem 506 in the active state.

In an embodiment, a multi-way or functional mechanical feature, such asshown and described with an embodiment of FIG. 4A-4C. may be used toenable the user to specify what action or actions are to performed onthe data item in the active state. Thus, for example, the user may use acombination navigation/selection mechanism, and enter different buttonpresses to select and/or navigate and/or place the active data item 506in-focus. According to an embodiment, different inputs provided inassociation with the active data item 506 may enable or result in theperformance of different programmatic actions. The different designatedinputs may individually correspond to any of the inputs provided or usedwith other embodiments described herein.

As an email address, the active data item 506 may be pre-associated withprogrammatic actions that are pertinent to messaging. These programmaticactions may be enabled in connection with inputs that are acted on thedata item 506. FIG. 5B illustrates the case where a primary programmaticaction is performed automatically in response to a designated input,such as a selection input. In one implementation, an email applicationmay execute and use the active data item 506 to partially compose a newmessage, such as by inserting the email address in an appropriateaddress field of a newly created email message. The execution of theemail application in this manner may be performed automatically inresponse to a specific input, or may be performed after the user isprompted to confirm his or her desire to have the action performed.

FIG. 5C shows that alternative or additional designated inputs mayresult in the user being provided a menu of actions that can beperformed on the active data item 506. These alternative actions maycorrespond to, for example, some or all of the programmatic actionsdescribed with FIG. 4A for the case of a phone item. The programmaticactions may also be configured in some way that is specific to the typeof the data item 506. For example, when the user seeks to add an emailaddress to a contact record, the corresponding programmatic action mayidentify an email field of the contact record, and insert the emailaddress in the appropriate field. Actions that are specific to emailaddresses may also be used, such as (i) adding the email address to awhite list for incoming email, where the white list represents anapproved list of email senders; and (ii) assigning or copying emailsthat are from the particular email address to a specific email folder.

FIG. 6A-6C illustrates alternative programmatic actions that may be madeactionable on a detected data item that is in the form of a URL or weblink, according to one or more embodiments of the invention. Anembodiment such as shown and described with FIG. 6A-6C may beimplemented using a computing device or system such as shown with anembodiment of FIG. 3.

According to an embodiment, an identified data item 606 is in the formof a URL or link. The data item 506 may be active, in that it isselectable and displayed as being selectable (e.g. with an underline).Multiple actions may be associated or assigned to data item 606, and theactions may be specific to the data item 606 being a URL or web link. Inone embodiment, different designated inputs may be used to performdifferent actions on the data item 606 when in the active state.

In an embodiment, a multi-way or functional mechanical feature, such asshown and described with an embodiment of FIG. 4A-4C, may be used toenable the user to specify what action or actions are to performed onthe data item 606. According to an embodiment, different inputs providedin association with the active data item 606 may enable or result in theperformance of different programmatic actions. The different designatedinputs may individually correspond to any of the inputs provided or usedwith other embodiments described herein.

FIG. 6B illustrates the case where a primary programmatic actionpre-associated with the link 606 is performed automatically in responseto a designated input, such as a selection input. This action may be totrigger a browser component to use the link to access a file from anetwork location identified by the link.

FIG. 6C shows that alternative or additional designated inputs mayresult in the user being provided a menu of actions that can beperformed on the active data item 606. These alternative actions maycorrespond to, for example, one or more of the following: (i) an action652 of emailing the link to a particular correspondent, in which case anemail composition to a desired person may be initiated; (ii) an action654 of sending the link via SMS (or other messaging transport) to adesired person; (iii) an action 656 of saving the link to a record, suchas a memo record; and (iv) an action 658 of saving the link as afavorite or otherwise book-marking it.

Hardware Diagram

FIG. 7 is a simplified hardware diagram for implementing any embodimentor combination of embodiments such as shown and described above. Adevice 700 includes one or more processors 710, memory resources 720, acommunication port 730, a display 740, and one or more mechanical inputfeatures 750. In an embodiment, the device 700 corresponds to a cellulartelephony device, such as a smart phone or mobile manager, capable ofcellular telephony, messaging, and data exchange. Alternatively, thedevice 700 may be any kind of computing device, such as a laptopcomputer, light computing device, or desktop computer.

The communication port 730 may be configured to provide wirelessconnectivity of a particular type (or types). For example, thecommunication port 730 may correspond to a WAN radio module for sendingand receiving cellular voice/data, a local wireless communication portsuch as Bluetooth or wireless USB, an infrared port, a GlobalPositioning System radio, or a WiMAX radio.

The memory resources 720 may include Flash memory, Random Access Memory,and/or persistent memory (i.e. ROM). The memory resources 720 includeinstructions and data for implementing functionality and programmaticactions such as provided with any of the embodiments described.Additionally, the memory resources 720 may carry databases or datastores of records that contain active data items (such as describedabove), and/or enable actions on such data items of saving the dataitems. The display 740 may render the data items described with anyembodiment herein in an active state (e.g. as a link). The mechanicalinput mechanisms 750, which may include buttons or multi-way interfacefeatures, may enable navigation, selection, and/or in-focus or partialinput selection. Such inputs may correspond to designated inputs whichmay be associated with active data items, and thus enable or causeprogrammatic actions associated with such data items. In othervariations, mechanical interface features include touch-sensitive pads(e.g. capacitive or resistive), dials, joy-sticks and multi-directionalmembers, roller balls, bezels or other forms of input mechanisms.

Additionally, under one variation, the display may be contact-sensitive(or alternatively light-sensitive) and thus enable interaction with theuser. Such interactions may be used to provide any of the designatedinputs for causing or enabling programmatic actions such as described.

As an alternative or addition to any embodiment in which a mechanicalinterface or input mechanism is recited as providing a designated input,one or more embodiments also contemplate virtual input mechanisms andtools, such as provided through a touch-sensitive display. For example,any actionable data item may be selected, and inputs may be specified inconnection with the data item through user-interaction that includesscreen taps in locations where the data item is displayed in the activestate.

Although illustrative embodiments of the invention have been describedin detail herein with reference to the accompanying drawings, it is tobe understood that the invention is not limited to those preciseembodiments. As such, many modifications and variations will be apparentto practitioners skilled in this art. Accordingly, it is intended thatthe scope of the invention be defined by the following claims and theirequivalents. Furthermore, it is contemplated that a particular featuredescribed either individually or as part of an embodiment can becombined with other individually described features, or parts of otherembodiments, even if the other features and embodiments make nomentioned of the particular feature. This, the absence of describingcombinations should not preclude the inventor from claiming rights tosuch combinations.

What is claimed is:
 1. A method performed by one or more processors of amobile computing device, the method comprising: receiving a record thatis at least one member of the group consisting of an email, a textmessage, and an instant message; in response to receiving the record,automatically analyzing text in the record to identify a data item thatcontains a sequence of characters that is actionable to initiatecommunication with another device; presenting the record on acontact-sensitive display of the mobile computing device whiledisplaying the sequence of characters as a selectable link on thecontact-sensitive display; detecting a user touching the selectable linkdisplayed on the contact-sensitive display; and in response to detectingthe user touching the selectable link, presenting, on thecontact-sensitive display, a menu including at least an option toinitiate communication with the other device using the sequence ofcharacters displayed as the selectable link.
 2. The method of claim 1,wherein the identified data item is a phone number, the method furthercomprising: automatically executing a phone application to dial thephone number in response to user selection of the option to initiatecommunication.
 3. The method of claim 1, wherein the identified dataitem is a uniform resource locator (URL), the method further comprising:automatically executing a web browser to access a web site identified bythe URL in response to user selection of the option to initiatecommunication.
 4. The method of claim 1, wherein the identified dataitem is an email address, the method further comprising: automaticallyexecuting an email application to send an email to the email address inresponse to user selection of the option to initiate communication. 5.The method of claim 1, wherein the identified data item is an emailaddress.
 6. The method of claim 5, wherein the analyzing comprisesdetecting an “@” in the sequence of characters.
 7. The method of claim1, wherein the identified data item is a phone number.
 8. The method ofclaim 7, wherein the analyzing comprises detecting a string of at leastseven numbers or detecting a string of numbers that follows a set ofthree numbers in parenthesis.
 9. The method of claim 1, wherein theidentified data item is a uniform resource locator (URL).
 10. The methodof claim 9, wherein the analyzing comprises detecting a “.com” in thesequence of characters.
 11. The method of claim 9, wherein the analyzingcomprises detecting a domain identifier.
 12. The method of claim 1,further comprising: receiving user selection of the option to initiatecommunication; determining a type of communication associated with theidentified data item; and transmitting the communication according tothe determined type of communication.
 13. The method of claim 1, furthercomprising: automatically initiating communication with the other devicebased on a selection of the option.
 14. The method of claim 1, whereinreceiving the record comprises opening the at least one member of thegroup consisting of an email, a text message, and an instant message.15. The method of claim 1, wherein detecting the user touching theselectable link includes detecting that the user has continuouslytouched the selectable link for a designated period of time.
 16. Themethod of claim 1, wherein the sequence of characters is automaticallydisplayed as the selectable link on the contact-sensitive display. 17.The method of claim 1, wherein the selectable link containing thesequence of characters is displayed with a form of prominence on thecontact-sensitive display.
 18. A mobile computing device, comprising: acontact-sensitive display; one or more processors; and a memory storinginstructions that, when executed by the one or more processors, causethe mobile computing device to: receive a record that is at least onemember of the group consisting of an email, a text message, and aninstant message; in response to receiving the record, automaticallyanalyze text in the record to identify a data item that contains asequence of characters that is actionable to initiate communication withanother device; present the record on the contact-sensitive displaywhile displaying the sequence of characters as a selectable link on thecontact-sensitive display; detect a user touching the selectable linkdisplayed on the contact-sensitive display; and in response to detectingthe user touching the selectable link, present, on the contact-sensitivedisplay, a menu including at least an option to initiate communicationwith the other device using the sequence of characters displayed as theselectable link.
 19. The mobile computing device of claim 18, whereinthe identified data item is a phone number, and execution of theinstructions causes the mobile computing device to further:automatically execute a phone application to dial the phone number inresponse to user selection of the option to initiate communication. 20.The mobile computing device of claim 18, wherein the identified dataitem is a uniform resource locator (URL), and execution of theinstructions causes the mobile computing device to further:automatically execute a web browser to access a web site identified bythe URL in response to user selection of the option to initiatecommunication.
 21. The mobile computing device of claim 18, wherein theidentified data item is an email address, and execution of theinstructions causes the mobile computing device to further:automatically execute an email application to send an email to the emailaddress in response to user selection of the option to initiatecommunication.
 22. The mobile computing device of claim 18, wherein theidentified data item is an email address, and execution of theinstructions to automatically analyze the text in the record causes themobile computing device to perform operations further comprisingdetecting an “@” in the sequence of characters.
 23. The mobile computingdevice of claim 18, wherein the identified data item is a phone number,and execution of the instructions to automatically analyze the text inthe record causes the mobile computing device to perform operationsfurther comprising detecting a string of at least seven numbers ordetecting a string of numbers that follows a set of three numbers inparenthesis.
 24. The mobile computing device of claim 18, wherein theidentified data item is a uniform resource locator (URL), and executionof the instructions to automatically analyze the text in the recordcauses the mobile computing device to perform operations furthercomprising detecting a “.com” in the sequence of characters.
 25. Themobile computing device of claim 18, wherein execution of theinstructions causes the mobile computing device to further: receive userselection of the option to initiate communication; determine a type ofcommunication associated with the identified data item; and transmit thecommunication according to the determined type of communication.
 26. Anon-transitory computer-readable medium storing instructions that, whenexecuted by one or more processors of a mobile computing deviceincluding at least a contact-sensitive display, cause the mobilecomputing device to perform operations comprising: receiving a recordthat is at least one member of the group consisting of an email, a textmessage, and an instant message; in response to receiving the record,automatically analyzing text in the record to identify a data item thatcontains a sequence of characters that is actionable to initiatecommunication with another device; presenting the record on acontact-sensitive display of the mobile computing device whiledisplaying the sequence of characters as a selectable link on thecontact-sensitive display; detecting a user touching the selectable linkdisplayed on the contact-sensitive display; and in response to detectingthe user touching the selectable link, presenting, on thecontact-sensitive display, a menu including at least an option toinitiate communication with the other device using the sequence ofcharacters displayed as the selectable link.
 27. The non-transitorycomputer-readable medium of claim 26, wherein the identified data itemis a phone number, and execution of the instructions causes the mobilecomputing device to perform operations further comprising: automaticallyexecuting a phone application to dial the phone number in response touser selection of the option to initiate communication.
 28. Thenon-transitory computer-readable medium of claim 26, wherein theidentified data item is a uniform resource locator (URL), and executionof the instructions causes the mobile computing device to performoperations further comprising: automatically executing a web browser toaccess a web site identified by the URL in response to user selection ofthe option to initiate communication.
 29. The non-transitorycomputer-readable medium of claim 26, wherein the identified data itemis an email address, and execution of the instructions causes the mobilecomputing device to perform operations further comprising: automaticallyexecuting an email application to send an email to the email address inresponse to user selection of the option to initiate communication. 30.The non-transitory computer-readable medium of claim 26, wherein theidentified data item is an email address, and the analyzing comprisesdetecting an “@” in the sequence of characters.
 31. The non-transitorycomputer-readable medium of claim 26, wherein the identified data itemis a phone number, and the analyzing comprises detecting a string of atleast seven numbers or detecting a string of numbers that follows a setof three numbers in parenthesis.
 32. The non-transitorycomputer-readable medium of claim 26, wherein the identified data itemis a uniform resource locator (URL), and the analyzing comprisesdetecting a “.com” in the sequence of characters.
 33. The non-transitorycomputer-readable medium of claim 26, wherein execution of theinstructions causes the mobile computing device to perform operationsfurther comprising: receiving user selection of the option to initiatecommunication; determining a type of communication associated with theidentified data item; and transmitting the communication according tothe determined type of communication.
 34. A mobile computing device,comprising: means for receiving a record that is at least one member ofthe group consisting of an email, a text message, and an instantmessage; means for automatically analyzing text in the record, inresponse to receiving the record, to identify a data item that containsa sequence of characters and that is actionable to initiatecommunication with another device; means for presenting the record on acontact-sensitive display of the mobile computing device whiledisplaying the sequence of characters as a selectable link on thecontact-sensitive display; means for detecting a user touching theselectable link displayed on the contact-sensitive display; and meansfor presenting, on the contact-sensitive display, a menu including atleast an option to initiate the communication with the other device,using the sequence of characters displayed as the selectable link, inresponse to detecting the user touching the selectable link.
 35. Themobile computing device of claim 34, wherein the identified data item isa phone number, the mobile computing device further comprising: meansfor automatically executing a phone application to dial the phone numberin response to user selection of the option to initiate communication.36. The mobile computing device of claim 34, wherein the identified dataitem is a uniform resource locator (URL), the mobile computing devicefurther comprising: means for automatically executing a web browser toaccess a web site identified by the URL in response to user selection ofthe option to initiate communication.
 37. The mobile computing device ofclaim 34, wherein the identified data item is an email address, themobile computing device further comprising: means for automaticallyexecuting an email application to send an email to the email address inresponse to user selection of the option to initiate communication. 38.The mobile computing device of claim 34, wherein the identified dataitem is an email address, and the analyzing comprises detecting an “@”in the sequence of characters.
 39. The mobile computing device of claim34, wherein the identified data item is a phone number, and theanalyzing comprises detecting a string of at least seven numbers ordetecting a string of numbers that follows a set of three numbers inparenthesis.
 40. The mobile computing device of claim 34, wherein theidentified data item is a uniform resource locator (URL), and theanalyzing comprises detecting a “.com” in the sequence of characters.41. The mobile computing device of claim 34, further comprising: meansfor receiving user selection of the option to initiate communication;means for determining a type of communication associated with theidentified data item; and means for transmitting the communicationaccording to the determined type of communication.